/* Variables globales */
var logged = false;

/* Funciones genéricas a toda la aplicación */

function logout() {
	$('#user').val('');
	$('#password').val('');
	flogges = false;
	$.mobile.changePage('#login', {
		transition : "slide",
		reverse : true
	});
}

function goMenu() {
	$.mobile.changePage('#menu', {
		transition : "slide",
		reverse : true
	});
}

function goBack() {
	navigator.app.backHistory();
}


function goProductos() {
	obtenerListaAlmacenes();
	obtenerListaProveedores();
	$.mobile.changePage('#productos', {
		transition : "slide"
	});
}

function obtenerListaAlmacenes(){
	var serviceURL = 'http://10.0.2.2:8080/Phama/pharmaws';
	$.mobile.showPageLoadingMsg(); 
	$.soap({
	    url: serviceURL,
	    appendMethodToURL: false, 
	    method: 'obtenerAlmacenes',
	    namespaceQualifier: 'ns2',
	    namespaceUrl: 'http://ws.phama.it.eps.upo.org/',
	    success: function (soapResponse) {
	    	var xmlDoc = $.parseXML(soapResponse);
	    	var xmlAlmacenes = $(xmlDoc);
	        $.mobile.hidePageLoadingMsg();
	        var almacenes = xmlAlmacenes.find("return");
	        var opciones = '<option value="0">Todos</option>';
	        if(almacenes.length>0){	        	
	        	almacenes.each(function(index, element){
	        		var id = $(element).find('idAlmacen').text();
	        		var nombre = $(element).find('nombre').text();
	        		opciones += '<option value="' + id + '">' + nombre + '</option>';
	        	});
	        	$('.lista_almacenes').empty().append(opciones).listview().trigger('create');
	        	$('.lista_almacenes').val(0).prop('selected', true);
		        $('.lista_almacenes').selectmenu('refresh', true);
	        }
	    },
	    error: function (SOAPResponse) {
	    	alert(SOAPResponse);
	    }
	});
}

function obtenerListaProveedores(){
	var serviceURL = 'http://10.0.2.2:8080/Phama/pharmaws';
	$.mobile.showPageLoadingMsg(); 
	$.soap({
	    url: serviceURL,
	    appendMethodToURL: false, 
	    method: 'obtenerProveedores',
	    namespaceQualifier: 'ns2',
	    namespaceUrl: 'http://ws.phama.it.eps.upo.org/',
	    success: function (soapResponse) {
	    	var xmlDoc = $.parseXML(soapResponse);
	    	var xmlProveedores = $(xmlDoc);
	        $.mobile.hidePageLoadingMsg();
	        var proveedores = xmlProveedores.find("return");
	        var opciones = '<option value="0">Todos</option>';
	        if(proveedores.length>0){	        	
	        	proveedores.each(function(index, element){
	        		var id = $(element).find('idProveedor').text();
	        		var nombre = $(element).find('nombre').text();
	        		opciones += '<option value="' + id + '">' + nombre + '</option>';
	        	});
	        	$('.lista_proveedores').empty().append(opciones).listview().trigger('create');
	        	$('.lista_proveedores').val(0).prop('selected', true);
		        $('.lista_proveedores').selectmenu('refresh', true);
	        }
	    },
	    error: function (SOAPResponse) {
	    	alert(SOAPResponse);
	    }
	});
}

function goClientes() {
	obtenerListaClientes();
	
	$.mobile.changePage('#clientes', {
		transition : "slide"
	});
}

function goPedidos() {
	obtenerListaClientes();
	obtenerListaEstados();
	obtenerListaProductos();
	$('#idPedido').val('');
	$('#idClientePedido').val('');
	$('#fechaPedido').val('');
	$.mobile.changePage('#pedidos', {
		transition : "slide"
	});
}

function obtenerListaClientes(){
	var serviceURL = 'http://10.0.2.2:8080/Phama/pharmaws';
	$.mobile.showPageLoadingMsg(); 
	$.soap({
	    url: serviceURL,
	    appendMethodToURL: false, 
	    method: 'obtenerClientes',
	    namespaceQualifier: 'ns2',
	    namespaceUrl: 'http://ws.phama.it.eps.upo.org/',
	    success: function (soapResponse) {
	    	var xmlDoc = $.parseXML(soapResponse);
	    	var xmlClientes = $(xmlDoc);
	        $.mobile.hidePageLoadingMsg();
	        var clientes = xmlClientes.find("return");
	        var opciones = '<option value="0">Todos</option>';
	        if(clientes.length>0){	        	
	        	clientes.each(function(index, element){
	        		var id = $(element).find('idCliente').text();
	        		var nombre = $(element).find('nombre').text();
	        		opciones += '<option value="' + id + '">' + nombre + '</option>';
	        	});
	        	$('.lista_clientes').empty().append(opciones).listview().trigger('create');
	        	$('.lista_clientes').val(0).prop('selected', true);
		        $('.lista_clientes').selectmenu('refresh', true);
	        }
	    },
	    error: function (SOAPResponse) {
	    	alert(SOAPResponse);
	    }
	});
}

function obtenerListaEstados(){
	var serviceURL = 'http://10.0.2.2:8080/Phama/pharmaws';
	$.mobile.showPageLoadingMsg(); 
	$.soap({
	    url: serviceURL,
	    appendMethodToURL: false, 
	    method: 'obtenerEstados',
	    namespaceQualifier: 'ns2',
	    namespaceUrl: 'http://ws.phama.it.eps.upo.org/',
	    success: function (soapResponse) {
	    	var xmlDoc = $.parseXML(soapResponse);
	    	var xmlClientes = $(xmlDoc);
	        $.mobile.hidePageLoadingMsg();
	        var clientes = xmlClientes.find("return");
	        var opciones = '<option value="0">Seleccione</option>';
	        if(clientes.length>0){	        	
	        	clientes.each(function(index, element){
	        		var id = $(element).find('idEstado').text();
	        		var nombre = $(element).find('descripcion').text();
	        		opciones += '<option value="' + id + '">' + nombre + '</option>';
	        	});
	        	$('.lista_estados').empty().append(opciones).listview().trigger('create');
	        	$('.lista_estados').val(0).prop('selected', true);
		        $('.lista_estados').selectmenu('refresh', true);
	        }
	    },
	    error: function (SOAPResponse) {
	    	alert(SOAPResponse);
	    }
	});
}

function obtenerListaProductos(){
	var serviceURL = 'http://10.0.2.2:8080/Phama/pharmaws';
	$.mobile.showPageLoadingMsg(); 
	$.soap({
	    url: serviceURL,
	    appendMethodToURL: false, 
	    method: 'obtenerProductos',
	    namespaceQualifier: 'ns2',
	    namespaceUrl: 'http://ws.phama.it.eps.upo.org/',
	    success: function (soapResponse) {
	    	var xmlDoc = $.parseXML(soapResponse);
	    	var xmlProductos = $(xmlDoc);
	        $.mobile.hidePageLoadingMsg();
	        var productos = xmlProductos.find("return");
	        var opciones = '<option value="0"></option>';
	        if(productos.length>0){	        	
	        	productos.each(function(index, element){
	        		var id = $(element).find('idProducto').text();
	        		var nombre = $(element).find('nombre').last().text();
	        		opciones += '<option value="' + id + '">' + nombre + '</option>';
	        	});
	        	$('.a_idProducto').empty().append(opciones).listview().trigger('create');
	        }
	    },
	    error: function (SOAPResponse) {
	    	alert(SOAPResponse);
	    }
	});
}


// Acción para el evento onClick de los input de la clase .nativedatepicker
// (Fecha)
$('.nativedatepicker').focus(function(event) {
	var currentField = $(this);
	var myNewDate = Date.parse(currentField.val()) || new Date();

	// Same handling for iPhone and Android
	window.plugins.datePicker.show({
		date : myNewDate,
		mode : 'date', // date or time or blank for both
		allowOldDates : true
	}, function(returnDate) {
		var newDate = new Date(returnDate);
		currentField.val(newDate.toString("dd/MMM/yyyy"));

		// This fixes the problem you mention at the bottom of this script with
		// it not working a second/third time around, because it is in focus.
		currentField.blur();
	});
});

// Acción para el evento onClick de los input de la clase .nativetimepicker
// (Hora)
$('.nativetimepicker').focus(function(event) {
	var currentField = $(this);
	var time = currentField.val();
	var myNewTime = new Date();

	myNewTime.setHours(time.substr(0, 2));
	myNewTime.setMinutes(time.substr(3, 2));

	// Same handling for iPhone and Android
	plugins.datePicker.show({
		date : myNewTime,
		mode : 'time', // date or time or blank for both
		allowOldDates : true
	}, function(returnDate) {
		// returnDate is generated by .toLocaleString() in Java so it will be
		// relative to the current time zone
		var newDate = new Date(returnDate);
		currentField.val(newDate.toString("HH:mm"));

		currentField.blur();
	});
});
